#!/bin/bash
###############################################################################
# @用例ID: 20230528-124535-702022188
# @用例名称: iputils_test
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"
    # @预置条件:系统正常运行，且已安装 iputils
    assert_true yum install -y iputils

    return 0
}

do_test() {
    msg "this is do_test"
    
    # @测试步骤:1
    # 使用 ping 命令测试主机的可达性
    assert_true ping -c 3 192.168.0.1



    # @测试步骤:1 使用 ping 命令测试主机的可达性
    # @预期结果:1 确保成功发送 ICMP 报文到目标主机，并接收到相应的回复
    assert_true ping -c 3 192.168.0.1

    # @测试步骤:2 使用 arping 命令测试主机的可达性
    # @预期结果:2 确保成功发送 ARP 报文到目标主机，并接收到相应的回复
    assert_true arping -c 3 192.168.0.1

    # @测试步骤:3 使用 tracepath 命令测试到目标主机的网络路径
    # @预期结果:3 确保成功跟踪到目标主机的网络路径，并显示每一跳的延迟和 IP 地址
    assert_true tracepath 192.168.0.1

    # @测试步骤:4 使用 ss 命令查看网络连接状态
    # @预期结果:4 确保成功网络连接正常
    assert_true ss -tun


    return 0
}

tc_teardown() {
    msg "this is tc_teardown"
    rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
